// 从 src/types/home.d.ts 类型声明文件中导入 BannerItem 类型
import type { BannerItem, CategoryItem, GuessItem } from '@/types/home'
// 从 src/utils/http.ts 中导入 http 事件。
import { http } from '@/utils/http'

import type { PageResult } from '@/types/global'

// 将 getHomeBannerAPI 事件进行导出a
export const getHomeBannerAPI = (type = 1) => {
  return http<BannerItem[]>({
    // 调用 http 事件实现向后端发送异步请求，同时指定返回值为 BannerItem[]
    // ctrl + i 可以进行手动导入
    url: '/home/banner', // 完整地址为：http://localhost:8081/uni/home/banner
    method: 'GET',
    data: {
      // 广告区域展示位置，1 为首页。 2 为分类商品页，默认值为 1
      type,
      opr: 'list',
    },
  })
}

/**
 * 首页-前台分类-小程序
 */
export const getHomeCategoryAPI = () => {
  return http<CategoryItem[]>({
    method: 'GET',
    url: '/home/category/mutli',
    data: { opr: 'list' },
  })
}

/**
 * 猜你喜欢-小程序
 * 参数 currPageNo 为当前页码默认值为 1，pageSize 为每页显示的数据行数默认值为 6。
 */
export const getHomeGoodsGuessLikeAPI = (currPageNo = 1, pageSize = 6) => {
  return http<PageResult<GuessItem>>({
    // 传入泛型，GuessItem 是商品类型
    method: 'GET',
    url: '/home/goods/guessLike',
    data: { currPageNo: currPageNo, pageSize: pageSize, opr: 'list' },
  })
}
